package top.infopub.mgr.sys.dao;


import org.apache.ibatis.annotations.Param;
import top.infopub.generic.GenericDao;
import top.infopub.mgr.mkt.domain.CollectDomain;
import top.infopub.mgr.sys.domain.OperatorDomain;
import top.infopub.mgr.sys.vo.OperatorVo;
import top.infopub.model.sys.Operator;

import com.github.pagehelper.Page;

import java.util.List;


/** 管理员(SYS_OPERATOR) **/
public interface OperatorDao extends GenericDao<Operator, String> {

    /**
     * 只根据用户名判断是否存在  不考虑删除/停用状态
     * @param suserName
     * @return
     * @see
     */
    int isUsernameExist(String suserName);

    Operator selectByUserName(String suserName);

    /**
     * 根据登录用户名与密码查询 用户
     * @return
     * @see
     */
    int queryByNameAndPw(Operator opt);

    /**
     * 修改密码
     * @return
     * @see
     */
    void updatePwd(Operator opt);

    void updateForLoginSuccess(String id);

    Page<OperatorDomain> selectByDomainWhere(OperatorVo operatorVo);

    /** codegen **/

    List<Operator> selectOperatorByGroupIdUser(@Param("groupId") String groupId,@Param("roleType") String roleType);

    List<Operator> selectOperatorByGroupIdPost(@Param("groupId") String groupId,
                                               @Param("roleType") String roleType,
                                               @Param("orgId") String orgId,
                                               @Param("deptId") String deptId);

    List<Operator> selectOperatorByGroupIdOrgIdsPost(@Param("groupId") String groupId,
                                               @Param("roleType") String roleType,
                                               @Param("orgIds") List<String> orgIds);

    Operator selectById(String id);

    CollectDomain selectTail(String id);
}
